package com.czapl.api;

import com.badlogic.gdx.math.Vector2;
import com.czapl.drawing.AnimatedSprite;

public interface IUnit {

	public float getSpeed();
	
	public void setSpeed(float m_speed);
	
	public Vector2 getPosition();
	
	public float getRadius();

	public void dispose(boolean killed);

	public void drawConditionBar();
	
	public void setCellChangeListener(IUnitTargetReachedListener listener);
	
	public interface IUnitTargetReachedListener {
		
		public void onTargetReached(IUnit unit);
		
	}
		
	public void setUnitSelectionListener(IUnitSelectionListener listener);

	public interface IUnitSelectionListener {

		public void onUnitSelected(IUnit unit);
		
	}
	
	public void setUnitStatusChangedListener(IUnitStatusChangedListener listener);

	public interface IUnitStatusChangedListener {

		public void onUnitStatusChanged(IUnit unit);
		
	}
	
	public void damage(float damageBase);
	
	public AnimatedSprite getAnimatedSprite();

	public String getName();

	public float getCurrentHp();
	
	public float getMaxHp();
}
